package com.jinke.uang.view;

import android.app.AlertDialog;
import android.content.Context;
import android.view.View;
import android.widget.TextView;

import com.coorchice.library.SuperTextView;
import com.jinke.uang.R;
import com.jinke.uang.common.DialogManager;

/**
 * 首页协议弹窗(只有第一次安装的时候弹出)
 */
public class GrantPermissionDialog {
    private Context context;
    private AlertDialog dialog;
    private GrantPermissionDialogCallBack callBack;

    public GrantPermissionDialog(Context context) {
        this.context = context;
        AlertDialog.Builder builder = new AlertDialog.Builder(context);
        View view = View.inflate(context, R.layout.view_grant_permission_dialog_layout, null);
        TextView tv_title = view.findViewById(R.id.tv_tile);
        TextView tv_content = view.findViewById(R.id.tv_content);
        SuperTextView confirm = view.findViewById(R.id.confirm_button);
        final SuperTextView cancel = view.findViewById(R.id.cancel_button);
        tv_title.setText("Disclaimer Risiko");
        tv_content.setText("\n1.\tLayanan Pinjam Meminjam Berbasis Teknologi Informasi merupakan kesepakatan perdata antara Pemberi Pinjaman dengan Penerima Pinjaman, sehingga segala risiko yang timbul dari kesepakatan tersebut ditanggung sepenuhnya oleh masing-masing pihak.\n" +
                "2.\tRisiko Kredit atau gagal bayar ditanggung sepenuhnya oleh Pemberi Pinjaman. Tidak ada lembaga atau otoritas Negara yang bertanggung jawab atas risiko gagal bayar ini.\n" +
                "3.\tPenyelenggara dengan persetujuan dari masing-masing Pengguna (Pemberi Pinjaman dan/atau Penerima Pinjaman) mengakses, memperoleh, menyimpan, mengelola dan/atau menggunakan data pribadi Pengguna (“Pemanfaatan Data”) pada atau di dalam benda, perangkat elektronik (termasuk smartphone atau telepon seluler), perangkat keras (hardware) maupun lunak (software), dokumen elektronik, aplikasi atau sistem elektronik milik Pengguna atau yang dikuasai Pengguna dengan memberitahukan tujuan, batasan dan mekanisme Pemanfaatan Data tersebut kepada Pengguna yang bersangkutan sebelum memperoleh persetujuan yang dimaksud.\n" +
                "4.\tPemberi Pinjaman yang belum memiliki pengetahuan dan pengalaman pinjam meminjam, disarankan untuk tidak menggunakan layanan ini.\n" +
                "5.\tPenerima Pinjaman harus mempertimbangkan tingkat bunga pinjaman dan biaya lainnya sesuai dengan kemampuan dalam melunasi pinjaman.\n" +
                "6.\tSetiap kecurangan tercatat secara digital di dunia maya dan dapat diketahui masyarakat luas di media sosial.\n" +
                "7.\tPengguna harus membaca dan memahami informasi ini sebelummembuat keputusan menjadi Pemberi Pinjaman atau Penerima Pinjaman.\n" +
                "8.\tPemerintah yaitu dalam hal ini Otoritas Jasa Keuangan, tidak bertanggung jawab atas setiap pelanggaran atau ketidakpatuhan oleh Pengguna baik Pemberi Pinjaman maupun Penerima Pinjaman (baik karena kesengajaan atau kelalaian Pengguna) terhadap ketentuan peraturan perundang-undangan maupun kesepakatan atau perikatan antara Penyelenggara dengan Pemberi Pinjaman dan/atau Penerima Pinjaman.\n" +
                "9.\tSetiap transaksi dan kegiatan pinjam meminjam atau pelaksanaan kesepakatan mengenai pinjam meminjam antara atau yang melibatkan Penyelenggara, Pemberi Pinjaman dan/atau Penerima Pinjaman wajib dilakukan melalui escrow account dan Virtual account sebagai mana yang diwajibkan berdasarkan Peraturan Otoritas Jasa keuangan Nomor 77/POJK.01/2016 tentang Layanan Pinjam Meminjam Uang Berbasis Teknologi Informasi dan pelanggaran atau ketidakpatuhan terhadap ketentuan tersebut merupakan bukti telah terjadinya pelanggaran hukum oleh Penyelenggara sehingga Penyelenggara wajib menanggung  ganti rugi yang diderita oleh masing-masing Pengguna sebagai akbiat langsung dari pelangaran hukum tersebut diatas tanpa mengurangi hak Pengguna yang menderita kerugian menurut kitab Undang-Undang Hukum Perdata.\n");
        builder.setView(view);
        builder.setCancelable(false);
        dialog = builder.create();
        dialog.show();
        confirm.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (callBack != null){
                    hide();
                    callBack.onConfirm();
                }
            }
        });


        cancel.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (callBack != null){
                    callBack.onCancel();
                }
                hide();
            }

        });


    }

    public void show() {
        DialogManager.getManager().showDialogStack(dialog);
    }

    public void hide() {

        DialogManager.getManager().dismissDialog(dialog);
    }

    public void setOnClickListener(GrantPermissionDialogCallBack callBack) {
        this.callBack = callBack;
    }

    public interface GrantPermissionDialogCallBack {
        void onConfirm();

        void onCancel();
    }


}
